1. Field of the Invention
The invention relates generally to software service and in particular to software application recreation.
2. Background Information
In software service and software testing, a typical problem faced by a product service team involves recreating a customer problem scenario. In one case, a user encounters a failing scenario (e.g., an undocumented or incorrect behavior) in a software application. The user raises a problem and gathers documentation that may help a service team in diagnosis of the failing scenario. The service team examines the documentation to diagnose the problem. If the service team can diagnose the problem, then the service team can repair the problem in the software application and retest for the failing scenario.
If the service team cannot diagnose the problem, the service team may ask the user to execute the software application with additional diagnostic aids active, in order to gather additional information if the failing scenario recurs. Once the additional information is gathered, then the service team can repair the problem and retest for the failing scenario.
A common issue is properly retesting for the failing scenario. One option involves obtaining the failing software application from the user for testing. Another option involves asking the customer to perform testing using the repaired version of the software application. Yet another option involves creating a test program that simulates the behavior of the failing user software application. Such options may be problematic, however, when dealing with users running complex software applications.
In another case, a product service team attempts to test a new version of a software application against well known user software application failing scenarios. The service team needs to understand the implementation and behavior of user software applications in order to verify test scenarios. This may involve highly experienced professionals in the area being tested, who may study and manually produce a test version of the user application, may obtain the user application for use in their test environment, or may use tooling to assemble a realistic model of the user application. Such options remain problematic in terms of creating a realistic simulation of the actual user application.